#include <stdio.h>
//
// Created by hi on 25-5-24.
//指针和常量
/*
 * 常量指针
 *      1、常量指针本身可以被修改
 *      2、指针的指向的值不可以被修改
 *      巧记方式，储存常量的指针
 *      const 读作常量
 *      const在星号前读作常量指针
 * 指针常量
 *      1、指针常量本身不可以被修改
 *      2、指针常量指向的值可以被修改
 *      const 读作常量
 *      const在星号后面读作指针常量
 * 常量指针常量
 *      1、指针常量本身不可以被修改
 *      2、指针常量的指向的值不可以被修改
 * 口诀
 *      常量在前值可改，常量在后指针可改
 */
int main() {
    int a = 10;
    int b = 2;
    const int *p = &a;//创建一个常量指针
    p = &b;//可以更改指针指向
    *p = 100;//不可修改指向指针的值

    //////////////////分割线//////////////////
    int *const p2 = &a;//创建一个指针常量
    p2 = &b;//指针常量初始化后不可修改
    *p2 = 200;//指向指针的值可以被修改


    ////////////////分割线///////////////////
    const int *const p3 = &a;//创建常量指针常量
    *p3 = 200;//指针本身不可修改
    p3 = &b;//指向的值不可修改
}